<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>el与data的两种写法</title>
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
    
    <!-- 
        MVVM模型
            M：模型(Model)： data中的数据
            V：试图(View)： 模板代码
            VM：视图模型(ViewModel)  Vue实例
        观察发现：
            data中所有的属性，最后都出现在了vm身上
            vm身上所有的属性及Vue原型上所有属性，在Vue模板中都可以直接使用
     -->


    <!-- 
        data与el的两种写法
            一：el有两种写法
                    一：new Vue时候配置el属性
                    二：先创建Vue实例，随后再通过 vm.$mount('#root')指定el的值
            二：data有两种写法
                    一：对象式
                    二：函数式
                            如何选择：目前哪种写法都可以，以后学习组件时，data必须使用函数式，否则会报错
                        一个重要原则：
                            由Vue管理的函数，一定不要写箭头函数，一旦写了箭头函数，this就不再是Vue实例了。
     -->
    <!-- 准备好一个容器 -->
    <div id="root">
        <h1>你好, {{name}}</h1>

    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false // 阻止 vue在启动时生成生产提示   
        
        // el的两种写法
        // el的第一种写法
        // 创建vue实例
        // const x = new Vue({
        //     // el: '#root', // el用于指定当前Vue实例为哪个容器服务，值通常为css选择器字符串
        //     data:{ //data中用于存储数据，数据供el所指定的容器去使用，值我们暂时先写成一个对象
        //         name: '徐亚远',
        //     }
        // })

        // console.log(x)
        // setTimeout(() => {
        //     x.$mount('#root') // 第二种写法
        // }, 1000)


        // data的两种写法
        new Vue({
            el:'#root',
            // data的第一种写法， 对象式
            // data:{
            //     name:'徐亚远'
            // }

            //data的第二种写法：函数式
            // data:function(){
            //     console.log('@@@@', this) //此处的this是Vue实例
            //     return{
            //         name:'徐亚远'
            //     }
            // }

             //data的第二种写法：函数式
            data(){
                console.log('@@@@', this) //此处的this是Vue实例
                return{
                    name:'徐亚远'
                }
            }

            // data:()=>{
            //     console.log('@@@@', this) //此处的this是Windows
            //     return{
            //         name:'徐亚远'
            //     }
            // }

        })

    </script>


</body>

</html>